package demo.letcode.top100;

public class _161连续天数的最高销售额 {
    public static void main(String[] args) {
        /*
         * 某公司每日销售额记于整数数组 sales，请返回所有连续一或多天销售额总和的最大值。

         * 示例 1：
         * 输入：sales = [-2,1,-3,4,-1,2,1,-5,4]
         * 输出：6
         * 解释：[4,-1,2,1] 此连续四天的销售总额最高，为 6。
         *
         * 示例 2：
         * 输入：sales = [5,4,-1,7,8]
         * 输出：23
         * 解释：[5,4,-1,7,8] 此连续五天的销售总额最高，为 23。
         *
         * 解法：最大数组和
         * 遍历数组 维护2个变量
         *  currentSum:以当前元素结尾最大数组和
         *  maxSum:全局最大数组和
         * currentSum=max(num[i],currentSum+num[i])
         */
        int[] sales = {-2, 1, -3, 4, -1, 2, 1, -5, 4};

        int currentSum = sales[0], maxSum = sales[0];
        for (int num : sales) {
            currentSum = Math.max(num, currentSum + num);
            maxSum = Math.max(maxSum, currentSum);
        }
        System.out.println(maxSum);
    }
}
